package utn.frsf.gabinete.fw.generator;

import java.lang.reflect.Field;

import javax.persistence.Id;

import utn.frsf.gabinete.fw.generator.html.Html5ElementRango;
import utn.frsf.gabinete.fw.generator.html.Html5ElementText;
import utn.frsf.gabinete.fw.generator.html.annotations.input.Rango;

public class MetadataLoad {

	private Formulario frm;

	public Formulario generarEntidad(Class<?> entidad){	
		frm = new Formulario(entidad.getSimpleName());
		leerMetadatosCampos(entidad);
		return frm;
	}
	
	/*
	 * Lee todos los atributos de una clase y 
	 * descarta aquellos que comienzan con JDO 
	 * (hago esto para que pueda tomar por defecto 
	 *  el texto si no hay anotaciones ) 
	 */
	private void leerMetadatosCampos(Class<?> clase){
		Field[] campos = clase.getDeclaredFields();
		Input inputAux =null;
		for(Field f : campos ){
			f.setAccessible(true);
			if(f.getName().startsWith("jdo")) continue;
			if(f.isAnnotationPresent(Id.class)){
				 inputAux = new InputHidden(f.getName());
				 continue; //continuo porque no va otro renderizado
			}
			if (f.isAnnotationPresent(Rango.class)) {
				 inputAux = new InputRango(f.getName());
			}
			else{
				 inputAux = new InputTexto(f.getName());
			}
			this.frm.addInput(inputAux);
		}
	}




	
}
